package org.aspire.game.bg;

import org.aspire.core.sys.GSystem;
import org.aspire.data.Renderer;
import org.aspire.game.Background;
import org.aspire.graphics.Frame;
import org.aspire.math.geom.Dimension;

/******************************************************************************
 * A background with an image.
 * 
 * @author JPACarabuena
 *****************************************************************************/
public class ImageBackground extends Background {

	// ========================================================================
	// Constants
	// ========================================================================

	// ========================================================================
	// Static Methods
	// ========================================================================

	// ========================================================================
	// Fields
	// ========================================================================

	/**************************************************************************
	 * The image for this background.
	 *************************************************************************/
	private Frame image;

	// ========================================================================
	// Constructors
	// ========================================================================

	public ImageBackground(Frame image) {
		super();
		this.image = image;
	}

	public ImageBackground(Frame image, Dimension dimension) {
		super(dimension);
		this.image = image;
	}

	public ImageBackground(Frame image, int width, int height) {
		super(width, height);
		this.image = image;
		GSystem.println(this.image == null);
	}
		
	
	// ========================================================================
	// Getters & Setters
	// ========================================================================

	public Frame getImage() {
		return this.image;
	}
	
	public void setImage(Frame image) {
		this.image = image;
		this.setSize(image.getWidth(), image.getHeight());
	}
	
	// ========================================================================
	// Override Methods
	// ========================================================================

	@Override
	public void render(Renderer r) {
		r.drawImage(this.image, (int) this.getX(), (int) this.getY());
	}
	
	// ========================================================================
	// Methods
	// ========================================================================

	// ========================================================================
	// Inner & Anonymous Classes
	// ========================================================================
}